(function (map) {
  // 定义一个全局的 require 方法
  function require(filePath) {
    // 创建文件之间的映射关系
    const fn = map[filePath];
    const module = {
      exports: {},
    };
    fn(require, module, module.exports);
    return module.exports;
  }
  require('./main.js');
})(
  /**
   * 这份是 webpack打包的一个 原型， 真正我们生成的文件其实就是长这样子就可以
   * 只是会变的地方就是下面的这个 资源和名字的映射对象会发生改变
   */
  {
    './foo.js': function foojs(require, module, exports) {
      function handlerAdd(a, b) {
        return a + b;
      }
      module.exports = { handlerAdd };
    },
    './main.js': function mainjs(require, module, exports) {
      const { handlerAdd } = require('./foo.js');
      const { baseConsole } = require('./demo.js');

      console.log(handlerAdd(1, 2));
      console.log('start！------------！');
      baseConsole();
    },
    './demo.js': function demojs(require, module, exports) {
      function baseConsole() {
        console.log('hello miniwebpack');
      }
      module.exports = { baseConsole };
    },
  }
);
